package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.DepartamentoFacade;
import sv.com.bolsaTrabajo.model.dao.MunicipioFacade;
import sv.com.bolsaTrabajo.model.entities.Municipio;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class MunicipioMB extends ManejadorAccion {

    @EJB
    private MunicipioFacade municipioFacade;
     @EJB
    private DepartamentoFacade departamentoFacade;
    private Municipio municipio;
    private List<Municipio> municipios;

    /**
     * Constructor
     */
    public MunicipioMB() {
        limpiarMunicipio();
        municipio = new Municipio();
    }

    public void limpiarMunicipio() {
        setMunicipio(new Municipio());
    }

    public List<Municipio> getMunicipios() {
        municipios = municipioFacade.obtenerTodos();
        return municipios;
    }

     
    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear Municipio");
            getMunicipio().setFechaMod(new Date());
           // getMunicipio().setIdMunicipio(municipioFacade.obtenerNuevoIdentificador());

            if (municipio.getIdMunicipio() == null) {
               // getEntidad().setCodigoDepartamento(departamentoControlador.obtenerNuevoIdentificador());
                municipioFacade.crear(municipio);
                lanzarMensajeInformacion("Exito", "Municipio guardada correctamente");

            } else {
                municipioFacade.modificar(municipio);
                lanzarMensajeInformacion("Exito", "Municipio modificada correctamente");

            }
            RequestContext.getCurrentInstance().update("IDFrmMunicipio");
            RequestContext.getCurrentInstance().execute("WVDialogMunicipio.hide();");

        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Municipio ", e);
        }
    }

    public void modificarEntidad(Municipio modMunicipio) {
        try {
            this.municipio = modMunicipio;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Municipio", e);

        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    public MunicipioFacade getMunicipioFacade() {
        return municipioFacade;
    }

    public void setMunicipioFacade(MunicipioFacade municipioFacade) {
        this.municipioFacade = municipioFacade;
    }

    public Municipio getMunicipio() {
        return municipio;
    }

    public void setMunicipio(Municipio municipio) {
        this.municipio = municipio;
    }

    public DepartamentoFacade getDepartamentoFacade() {
        return departamentoFacade;
    }

    public void setDepartamentoFacade(DepartamentoFacade departamentoFacade) {
        this.departamentoFacade = departamentoFacade;
    }
    
 }
